package com.example.midushop.mapper.product.spu;

import com.example.midushop.entity.product.spu.ProductSPU;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;


import java.util.Date;
import java.util.List;

/**
 * 商品信息SPU映射接口类
 * */
@Mapper
public interface ProductSPUMapper {

    /**
     *添加商品SPU信息
     * @param categorythree_id 商品类目id
     * @param name SPU名
     * @param code 商品编号
     * @param cover 封面
     * @param intro 商品介绍
     * @param brand_id 品牌ID
     * @param after_sales_service 售后服务
     * @param is_marketable 是否上架
     * @param is_delete 是否删除
     * @param status 审核状态
     * @param create_time 创建时间
     * @param update_time 更新时间
     * @return
     */
    int addProductSPU(@Param("categorythree_id") long categorythree_id, @Param("name") String name, @Param("code") String code,
                      @Param("cover") String cover, @Param("intro") String intro, @Param("brand_id") long brand_id,
                      @Param("after_sales_service") String after_sales_service, @Param("is_marketable") int is_marketable,
                      @Param("is_delete") int is_delete, @Param("status") int status, @Param("create_time") Date create_time, @Param("update_time") Date update_time);

    /**
     *多条件查询商品SPU
     * @param spu_id SPUID
     * @param categorythree_id 分类ID
     * @param name  商品SPU名称
     * @param brand_id 品牌ID
     * @return 返回SPU集合
     */
    List<ProductSPU> findProductAll(@Param("spu_id") long spu_id,
                                    @Param("categorythree_id") long categorythree_id,
                                    @Param("name") String name,
                                    @Param("code") String code,
                                    @Param("brand_id") long brand_id);

    List<ProductSPU> findProductAllInfo(@Param("spu_id") long spu_id,
                                        @Param("categorythree_id") long categorythree_id,
                                        @Param("name") String name,
                                        @Param("code") String code,
                                        @Param("brand_id") long brand_id);
}
